<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 
        集合

        - 一种无序且唯一的数据结构
        - ES6中有集合，名为Set
        - 集合的常用操作：去重、判断某元素是否在集合中、求交集......
     -->
</head>
<body>
    <script>
        // 去重
        const arr = [1,1,2,2];
        const arr2 = [...new Set(arr)];

        // 判断元素是否在集合中
        const set = new Set(arr);
        const has = set.has(1); // Set 的 has方法用于判断一个数是否在集合中
        console.log(has); // true
        console.log(set.has(3)); // false

        // 求交集
        const set2 = new Set([2, 3]);
        // 使用数组的filter方法求交集，过滤出set中有且set2中也有的元素
        const set3 = new Set([...set].filter(item => set2.has(item))); // 这里箭头函数的函数体就是返回值，可以省略大括号
        console.log(set3); // 只有一个值 (2) 
        console.log(set3.size); // 集合使用size表示个数
    </script>
</body>
</html>